namespace GGameFramework
{
    public enum FrameworkSystemPriority
    {
        Event = 1,
        Pool,
        Timer,
    }
    
    /// <summary>
    /// 模块基类，定义生命周期
    /// </summary>
    public abstract class FrameworkModule
    {
        /// <summary>
        /// 模型优先级
        /// </summary>
        internal virtual int Priority => 0;
        /// <summary>
        /// 模块轮询
        /// </summary>
        /// <param name="elapseSeconds"></param>
        /// <param name="realElapseSeconds"></param>
        internal abstract void Update(float elapseSeconds, float realElapseSeconds);
        
        /// <summary>
        /// 关闭模块
        /// </summary>
        internal abstract void Shutdown();
    }

}
